﻿var moldusetimeDetailFormVue = new Vue({
    el: "#moldusetimeDetailForm",
    data: {
        isNewMold: true,   //判断是否新模具
        isEditMode: false,      //判断可否编辑

        mold: {
            BaseInfo: {}
        },
        //此处如果需要用到数据字典则在这里加
        statusDictionary: {},       //模具状态字典
    },
    methods: {
        SaveMold: function (event) {
            event.preventDefault();
            SaveMoldDetail(this);
        },
        EditMold: function (event) {
            event.preventDefault();
            this.isEditMode = true;
            ResetFromEditMode(this);
        },
        UpdateMold: function (event) {
            event.preventDefault();
            UpdateMoldDetail(this);
        },
        CancelEditMold: function (event) {
            event.preventDefault();
            this.isEditMode = false;
            ResetFromEditMode(this);
        }
    },
    created: function () {
        //页面加载前初始的数据
        InitialAztechScript();
    },
    mounted: function () {
        //页面加载后初始的数据
        this.statusDictionary = GlobalDictionary.GetMoldsStatusDictionary();


        var isNew = GetQueryString("IsNew");
        var moldID = GetQueryString("MoldID");
       
        if (isNew == "true") {
            this.navTitle = "新增模具信息Add mold information";
            this.isNewMold = true;
            this.isEditMode = true;

        } else {
            this.navTitle = "编辑模具信息Edit mold information";
            this.isNewMold = false;
            this.isEditMode = false;
            GetMoldDetail(this, moldID);
        }
        ResetFromEditMode(this);

        $('[data-toggle="tooltip"]').tooltip();
    },
    watch: {
        mold: {
            handler: function (val, oldVal) {
                if (this.isEditMode) {
                    //if (val.BaseInfo.MoldID)
                    //    CheckMoldMoldID(val.BaseInfo.MoldID);    需求by cao.ming.xing  某些字段不需要填写
                    if (val.BaseInfo.Segment)
                        CheckMoldSegment(val.BaseInfo.Segment);
                    //if (val.BaseInfo.UPHvalue)
                    //    CheckMoldUPHvalue(val.BaseInfo.UPHvalue);
                    if (val.BaseInfo.Status)
                        CheckMoldStatus(val.BaseInfo.Status);
                    //if (val.BaseInfo.DesignedLife)
                    //    CheckMoldDesignedLife(val.BaseInfo.DesignedLife);
                    //if (val.BaseInfo.Size)
                    //    CheckMoldSize(val.BaseInfo.Size);
                    if (val.BaseInfo.CavityNum)
                        CheckMoldCavityNum(val.BaseInfo.CavityNum);
                    if (val.BaseInfo.OutProductNum)
                        CheckMoldOutProductNum(val.BaseInfo.OutProductNum);
                    //if (val.BaseInfo.MachineType)
                    //    CheckMoldMachineType(val.BaseInfo.MachineType);
                    //if (val.BaseInfo.ProductionNum)
                    //    CheckMoldProductionNum(val.BaseInfo.ProductionNum);
                    //if (val.BaseInfo.ResidualLife)
                    //    CheckMoldResidualLife(val.BaseInfo.ResidualLife);
                   
                }
            },
            deep: true
        }
    }
});


/**
 * 获取获取详细信息并显示到页面
 */
function GetMoldDetail(vue, moldID) {
    parent.ShowAzLoading();
    
    $.ajax({
        type: "GET",
        url: "/MoldUseTime/GetMoldsByID?MoldID="+moldID+"&v=" + Math.random(),
        success: function (res) {
            if (res.status == "Success") {
                console.log(res.data);
                SetMoldDetail(vue, res.data);
            } else {
                toastr.error(res.message);
            }
            parent.HideAzLoading();
        },
        error: function (err) {
            console.log(err);
            parent.HideAzLoading();
            toastr.error("获取模具信息失败，请稍候再试Failed to get mold information. Please try again later。");
        }
    });
}

/**
失去焦点是根据物料号带出产品描述和数量
*/
$("#moldSegment").blur( function () {
    //文本框失去焦点
    //$(function () {
        parent.ShowAzLoading();
        $.ajax({
            type: "GET",
            url: "/MoldUseTime/GetMoldUseTimeBySegment?Segment=" + $("#moldSegment").val().trim() + "&v=" + Math.random(),
            success: function (res) {
                if (res.status == "Success") {
                    var vue = moldusetimeDetailFormVue;
                    vue.$nextTick(function () {
                        vue.mold.BaseInfo.Descrption = JSON.stringify(res.data.BaseInfo.Descrption).replace("\"", "").replace("\"", "");
                        //获取查询到的数据  并去除两端空格  .replace("\"", "").replace("\"", "")
                        vue.mold.BaseInfo.ProductionNum = JSON.stringify(res.data.BaseInfo.ProductionNum).replace("\"", "").replace("\"", "");
                      
                        $("#moldDescrption").val(vue.mold.BaseInfo.Descrption);
                        $("#moldProductionNum").val(vue.mold.BaseInfo.ProductionNum);
                        console.log(JSON.stringify(res.data));
                    });
                    vue.mold.BaseInfo.Segment = JSON.stringify(res.data.BaseInfo.Segment).replace("\"", "").replace("\"", "");
                }
                else {
                    toastr.error(res.message);
                }
                parent.HideAzLoading();
            },
            error: function (err) {
                console.log(err);
                parent.HideAzLoading();
                toastr.error("获取模具信息失败，请稍候再试Failed to get mold information. Please try again later。");
            }
        });
});

/**
*当设计寿命框失去焦点时 自动计算剩余寿命
*/
function CountNum () {
    //文本框失去焦点
    parent.ShowAzLoading();
    var vue = moldusetimeDetailFormVue;

    vue.mold.BaseInfo.ResidualLife= $("#moldDesignedLife").val() - $("#moldProductionNum").val();
    
}



/**
 * 根据物料获取物料列表
 */
function SearchSegment() {
    parent.ShowAzLoading();
  if ($("#moldSegment").val().trim().length>7) { //输入的物料编号大于7个字符才进行查询(减少查找时间)
    $.ajax({
        type: "POST",
        url: "/MoldUseTime/GetMoldUseTimeListBySegment?Segment=" + $("#moldSegment").val().trim() + "&v=" + Math.random(),
        success: function (res) {
            if (res.status == "Success") {
                var arr = new Array();
                for (var i = 0; i < res.data.length; i++) {
                    //res.data[i].BaseInfo.Segment;
                    //var arr = JSON.stringify(res.data[i].BaseInfo.Segment);
                    arr.push(res.data[i].BaseInfo.Segment);
                    console.log(res.data[i].BaseInfo.Segment);
                }
                $("#moldSegment").autocomplete({//用于自动填充
                    source: arr, //数据源
                    select: function (event, ui)//该事件为选中某项后触发
                    {
                        parent.ShowAzLoading();
                        var Segment = ui.item.value;
                        CheckSegment(Segment);
                    }
                });
                    
            } else {
                toastr.error(res.message);
            }
            parent.HideAzLoading();
        },
        error: function (err) {
            console.log(err);
            parent.HideAzLoading();
            toastr.error("获取模具信息失败，请稍候再试Failed to get mold information. Please try again later。");
        }
        });
    }
}



/**
 * 解析服务器返回的模具所有详细信息
 */
function SetMoldDetail(vue, info) {
    //console.log(info);
    vue.mold = info;

    vue.mold.BaseInfo.CreateDate = CSharpToJsDate(vue.mold.BaseInfo.CreateDate);
    vue.mold.BaseInfo.UpdateDate = CSharpToJsDate(vue.mold.BaseInfo.UpdateDate);

}

/**
*判断物料是否已经存在
*/
function CheckSegment(Segment) {
    parent.ShowAzLoading();
    $.ajax({
        type: "GET",
        url: "/MoldUseTime/GetNewMoldUseTimeBySegment?Segment=" + Segment + "&v=" + Math.random(),
        success: function (res) {
            if (res.status == "Success" && res.data.BaseInfo.Segment == Segment)//如果状态为成功，并且输入的料号已存在
            {
                if (confirm("该料号已存在This item No. already exists！")) {
                    $("#moldSegment").val("");//清空该文本框
                } else {
                    $("#moldSegment").val("");//清空该文本框
                }
            }
        }
    });
}
/**
 * 保存模具信息
 */
function SaveMoldDetail(vue) {
        var Segment = $("#moldSegment").val().trim();//点击保存时
        CheckSegment(Segment);

    if (CheckMoldDetail(vue)) {
        parent.ShowAzLoading();
        $("button").attr("disabled", true);
        $.ajax({
            type: "POST",
            url: "/MoldUseTime/SaveMold",
            data: { mold: vue.mold },
            success: function (res) {
                if (res.status == "Success") {
                    toastr.success("保存模具信息成功Die information saved successfully。");
                    ResetForm(vue);
                } else {
                    toastr.error(res.message);
                }
            },
            error: function (err) {
                console.log(err);
                toastr.error("服务器发生错误，请稍候再试An error occurred in the server. Please try again later。");
            },
            complete: function () {
                parent.HideAzLoading();
                $("button").removeAttr("disabled");
            }
        });
    }
}


/**
 * 更新模具信息
 */
function UpdateMoldDetail(vue) {
    if (CheckMoldDetail(vue)) {
        parent.ShowAzLoading();
        $("button").attr("disabled", true);
        $.ajax({
            type: "POST",
            url: "/MoldUseTime/UpdateMold",
            data: { mold: vue.mold },
            success: function (res) {
                if (res.status == "Success") {
                    toastr.success("保存模具信息成功Die information saved successfully。");
                } else {
                    toastr.error(res.message);
                }
            },
            error: function (err) {
                console.log(err);
                toastr.error("服务器发生错误，请稍候再试An error occurred in the server. Please try again later。");
            },
            complete: function () {
                parent.HideAzLoading();
                $("button").removeAttr("disabled");
            }
        });
    }
}

/**
 * 设置表格中所有输入框可否编辑
 */
function ResetFromEditMode(vue) {
    if (vue.isEditMode) {
        $("input").removeAttr("disabled");
        $("select").removeAttr("disabled");
        $("textarea").removeAttr("disabled");
    } else {
        $("input").attr("disabled", "disabled");
        $("select").attr("disabled", "disabled");
        $("textarea").attr("disabled", "disabled");
    }       
}

/**
 * 清空表单信息
 */
function ResetForm(vue) {
    vue.mold = {
        BaseInfo: {}
      
    };
}

/**
 * 检查模具信息正确性
 */
function CheckMoldDetail(vue) {
    //if (!CheckMoldMoldID(vue.mold.BaseInfo.MoldID)) {
    //    toastr.error("请填写正确的模具编号。");
    //    return false;
    //} else
        if (!CheckMoldSegment(vue.mold.BaseInfo.Segment)) {
            toastr.error("请填写产品编号Please fill in the product number。");
            return false;
        } else if (!CheckMoldStatus(vue.mold.BaseInfo.Status)) {
            toastr.error("请选择模具状态Please select mold status。");
            return false;
        } else if (!CheckMoldDesignedLife(vue.mold.BaseInfo.DesignedLife)) {
            toastr.error("工模设计寿命必须有数字The design life of the tooling must have a number。");
            return false;
        //} else if (!CheckMoldSize(vue.mold.BaseInfo.Size)) {
        //    toastr.error("请填写模具尺寸。");
        //    return false;
        } else if (!CheckMoldCavityNum(vue.mold.BaseInfo.CavityNum)) {
            toastr.error("请填写设计型腔数。");
            return false;
        } else if (!CheckMoldOutProductNum(vue.mold.BaseInfo.OutProductNum)) {
            toastr.error("请填写模具出品数。");
            return false;
        } else if (!CheckMoldUPHvalue(vue.mold.BaseInfo.UPHvalue)) {
            toastr.error("UPH产能数量必须有数字UPH capacity quantity must have a number。");
            return false;
        //} else if (!CheckMoldMachineType(vue.mold.BaseInfo.MachineType)) {
        //    toastr.error("请填写适啤机台。");
        //    return false;
        //}
    //} else if (!CheckMoldProductionNum(vue.mold.BaseInfo.ProductionNum)) {
    //    toastr.error("请填写oracle生产数量。");
    //    return false;
    //} else if (!CheckMoldResidualLife(vue.mold.BaseInfo.ResidualLife)) {
    //    toastr.error("请填写工模剩余寿命。");
    //    return false;
    } 
    return true;
}

//function CheckMoldMoldID(value) {
//    var reg = /^[A-Za-z0-9-]{2,20}$/;
//    var result = reg.test(value);
    
//    $("#moldMoldID").parent().removeClass("has-error");
//    if (!value || !result) {
//        result = false;
//        $("#moldMoldID").parent().addClass("has-error");
//    }
//    return result;
//}

function CheckMoldSegment(value) {
    $("#moldSegment").parent().removeClass("has-error");
    if (!value || value.length == 0) {
        $("#moldSegment").parent().addClass("has-error");
        return false;
    }
    return true;
}

function CheckMoldStatus(value) {
   //检查状态只有两种状态  1：使用中   0：已报废 所以当状态为别的状态时返回false
    $("#moldStatus").parent().removeClass("has-error");
    if (value == 0 || value==1) {
        $("#moldStatus").parent().removeClass("has-error");
        return true;
    }
    $("#moldStatus").parent().addClass("has-error");
    return false;
}

function CheckMoldUPHvalue(value) {
var reg = /^[0-9]{1,20}$/;
var result = reg.test(value);

    $("#moldUPHvalue").parent().removeClass("has-error");
    if (!value || !result) {
    result = false;
    $("#moldUPHvalue").parent().addClass("has-error");
    }
    if (value == 0 && value.length != 0) {
    result = true;
    $("#moldUPHvalue").parent().removeClass("has-error");
    }
return result;
}

//function CheckMoldStatus(value) {
//    $("#moldStatus").parent().removeClass("has-error");
//    if (!value || value.length == 0) {
//        $("#moldStatus").parent().addClass("has-error");
//        return false;
//    }
//    return true;
//}

function CheckMoldDesignedLife(value) {
    var reg = /^[0-9]{1,20}$/;
    var result = reg.test(value);

    $("#moldDesignedLife").parent().removeClass("has-error");
    if (!value || !result) {
        result = false;
        $("#moldDesignedLife").parent().addClass("has-error");
    }
    if (value == 0 && value.length!=0) {
        result = true;
        $("#moldDesignedLife").parent().removeClass("has-error");
    }
    return result;
}

//function CheckMoldSize(value) {
//    $("#moldSize").parent().removeClass("has-error");
//    if (value.length == 0) {//编辑的情况下 删除了该字段的数据
//        alert(value.length);
//        document.getElementById("moldSize").value = "  0 ";
//        $("#moldSize").parent().removeClass("has-error");
//        return true;
//    }
//    if (!value || value.length == 0)
//    {
//          $("#moldSize").parent().addClass("has-error");
//        return false;
//    }
//    return true;
//}

function CheckMoldCavityNum(value) {
    var reg = /^[0-9]{1,20}$/;
    var result = reg.test(value);

    $("#moldCavityNum").parent().removeClass("has-error");
    if (!value || !result) {
        result = false;
        $("#moldCavityNum").parent().addClass("has-error");
    }
    return result;
}

function CheckMoldOutProductNum(value) {
    var reg = /^[0-9]{1,20}$/;
    var result = reg.test(value);

    $("#moldOutProductNum").parent().removeClass("has-error");
    if (!value || !result) {
        result = false;
        $("#moldOutProductNum").parent().addClass("has-error");
    }
    return result;
}



//function CheckMoldMachineType(machineType) {
//    $("#moldMachineType").parent().removeClass("has-error");
//    if (!machineType) {
//        $("#moldMachineType").parent().addClass("has-error");
//        return false;
//    }
//    return true;
//}

//function CheckMoldProductionNum(value) {
//    $("#moldProductionNum").parent().removeClass("has-error");
//    if (!value || value.length == 0) {
//        $("#moldProductionNum").parent().addClass("has-error");
//        return false;
//    }
//    return true;
//}

//function CheckMoldResidualLife(value) {
//    $("#moldResidualLife").parent().removeClass("has-error");
//    if (!value || value.length == 0) {
//        $("#moldResidualLife").parent().addClass("has-error");
//        return false;
//    }
//    return true;
//}
